//
// Created by DengLibin on 2019/1/16 0016.
//

#include <iostream>
#include <vector>
using namespace std;

/**
给定一个由整数组成的非空数组所表示的非负整数，在该数的基础上加一。
最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外，这个整数不会以零开头。
 * @param digits
 * @return
 */

vector<int> plusOne(vector<int>& digits) {
    vector<int> v;
    if(digits.size() == 0){
        return v;
    }
    int temp = 1;
    for(int i = digits.size() - 1; i >= 0 ; i--){
        int x = digits[i]+temp;
        if(x >=10 ){
            temp = 1;
            x = x -10;
        }else{
            temp = 0;
        }
        v.push_back(x);
    }
    if(temp > 0){
        v.push_back(temp);
    }
    for(int i = 0,j = v.size() -1; i < v.size() / 2; i++,j--){
        int temp = v[i];
        v[i] = v[j];
        v[j] = temp;
    }
    return v;
}

int main66(){
    vector<int> v;
    v.push_back(0);
  /*  v.push_back(8);
    v.push_back(8);
    v.push_back(9);*/

    vector<int > rv = plusOne(v);
    for(int x : rv){
        cout << x <<endl;
    }
}
